package com.uzai.console.service.tencent;

import com.uzai.console.dto.tencent.TencentCosConfigDto;
import com.uzai.console.vo.base.SelectKeyVo;
import com.uzai.console.vo.tencent.TencentCosConfigInfoVo;
import com.uzai.console.vo.tencent.TencentCosConfig;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;
import java.util.List;

/**
 * 腾讯云
 * @author liuqi
 * @date 2019-06-18 15:06
 */
public interface TencentCosService {

    //上传文件流
    String upload(Long merId, InputStream inputStream, String fileName);

    /**
     * 上传并转图片格式
     * @author lucher
     * @date 2022/3/9 15:40
     * @param merId
     * @param inputStream
     * @param fileName
     * @param format 转化成的图片格式
     * @return java.lang.String
     */
    String uploadAndTrans(Long merId, InputStream inputStream, String fileName, String format);

    /**
     * 获取腾讯云配置
     * @author liuqi
     * @date 2022/1/18 15:17
     * @param merId
     * @param
     */
    TencentCosConfig getTencentCosConfigByMerId(Long merId);

    Boolean checkConfig(TencentCosConfigDto tencentCosConfigDto);

    void addTencentCosConfig(TencentCosConfigDto tencentCosConfigDto);

    /**
     * 上传文件
     * @author liuqi
     * @date 2022/1/18 15:17
     * @param file
     */
    String uploadFile(MultipartFile file, Long merId);

    /**
     * 上传文件并转化图片格式
     * @author liuqi
     * @date 2022/1/18 15:17
     * @return com.uzai.console.vo.tencentCosConfig.TencentCosConfigConfigUploadFileVo
     */
    String uploadFileAndTrans(MultipartFile multipartFile, Long merId, String format);

    /**
     * 查询腾讯云详情
     * @author jitwxs
     * @date 2022/1/18 17:25
     * @param merId
     * @return com.uzai.console.vo.qiniu.QiniuConfigVo
     */
    TencentCosConfigInfoVo findTencentCosConfigInfo(Long merId);

    /**
     * 查询腾讯云区域列表
     * @author jitwxs
     * @date 2022/1/18 17:25
     * @param
     * @return com.uzai.console.vo.qiniu.QiniuConfigVo
     */
    List<SelectKeyVo> findRegionList();

    /**
     * 手机号信息检验（三要素）
     * @author lucher
     * @date 2022/3/9 15:40
     * @param phone
     * @param name
     * @param idCard
     * @return java.lang.String
     */
    Boolean authentication(String phone, String name, String idCard);

}
